package com.liuzhilong.infrastructure.framework.algorithms.algorithms.sort;

/**
 * 封装了对数组排序的通用操作方法。基本上所有的排序都会有如下几个操作。
 */
public class SortCommon {
    /**
     * 判断是否小于
     * @param v
     * @param w
     * @return
     */
    public static boolean less(Comparable v, Comparable w) {
        return v.compareTo(w) < 0;
    }
    //交换数组位置
    public static void exch(Comparable[] a, int i, int j) {
        if (i == j) {
            return;
        }
        Comparable t = a[i];
        a[i] = a[j];
        a[j] = t;
    }
    //判断数组是否有序
    public static boolean isSorted(Comparable[] a) {
        // 测试数组元素是否有序
        for (int i = 1; i < a.length; i++) {
            if (less(a[i], a[i - 1])) {
                return false;
            }

        }
        return true;
    }
    public static void show(Comparable[] a)    {  // 在单行中打印数组
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
        System.out.println();;
    }


}
